﻿using System;

namespace AnimaGestionPersonnage.Utilities
{
    public enum Stats
    {
        Agilité, Constitution, Dextérité, Force, Inteligence, Perception, Pouvoir, Volonté, Taille, Erreur
    }

    public class StatBonus
    {
        public Stats stat { get; set; }
        public int bonus { get; set; }

        public StatBonus()
        {
        }

        public StatBonus(Stats st, int b)
        {
            stat = st;
            bonus = b;
        }
    }

    public enum TypeSkill
    {
        Athlétiques, Vitales, Sensorielles, Intellectuelles, Sociales, Cladestines, Créatives, Autre, Combat, Mystique, Psionique, Erreur
    }

    public enum SkillSet
    {
        Primary, Secondary, Other, NoCost, Erreur
    }

    public class SkillMod:IEquatable<String>
    {
        public string skillName { get; set; }
        public int value { get; set; }

        public SkillMod(string s, int b)
        {
            skillName = s;
            value = b;
        }

        public SkillMod()
        {
        }

        public bool Equals(String otherSkill)
        {
            return skillName.Equals(otherSkill);
        }
    }

    public enum Archetype
    {
        Combattant, ArtisteMartial, Furtif, Mystique, Psy, SansClasse, CombattantArtisteMartial,
        CombattantFurtif, CombattantMystique, CombattantPsy, FurtifMystique, MystiquePsy
    }

    public enum AdvDisadvType
    {
        Général, Mistique, Psychique, Erreur
    }

    public enum DamageTypes
    {
        Tranchant, Perforant, Contondant, Chaleur, Froid, Électricité, Énergie, Aucun
    }

    public enum WeaponTypes
    {
        Hast, DeuxMains, Corde, ArmeCourte, Épée, Masse, Hache, MainsNues, Tir, Lancer, Munition, Aucun
    }

    public enum WeaponSpecials
    {
        Complexe, DeuxMains, Immobilisation, Lançable, PiègeArme, Précise, UneDeuxMains, Autre
    }

    public enum WeaponRelations
    {
        Similaire, Distincte, Mixte, Erreur
    }

    public enum MartialArtsLevels
    {
        Initial, Expert, Suprême, Arcane
    }

    public enum MartialArtsTypes
    {
        Basique, Avancé
    }

    public interface ISkillBonusAdder
    {
        void addSkillBonus(SkillMod sm);
    }

    public interface ICharacterSaved
    {
        void characterSaved(bool isSaved);
    }
}